package org.easy.tool.common;

import cn.hutool.core.util.IdUtil;

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author Valley
 * Created by Valley on 2023/8/11 18:58
 */
public class RandomUtil {

    /**
     * 功能：获取最大值、最小值之间的随机数，[a,b), 包括最小值，不包括最大值
     */
    public static int randomInt(int min, int max) {
        return cn.hutool.core.util.RandomUtil.randomInt(min, max);
    }

    /**
     * 功能：获取指定个数的随机数，获取最大值、最小值之间的随机数，[a,b)
     */
    public static List<Integer> randomIntList(int num, int min, int max) {
        List<Integer> list = NumUtil.numList(min, max);
        return randomList(num, list);
    }

    /**
     * 功能：获取指定个数的随机数，获取最大值、最小值之间的随机数，[a,b)，默认从0开始
     */
    public static List<Integer> randomIntList(int num, int max) {
        List<Integer> list = NumUtil.numList(0, max);
        return randomList(num, list);
    }

    /**
     * 功能：获取指定个数的列表随机值
     */
    public static List<Integer>  randomList(int num, List<Integer> list) {
        Collections.shuffle(list);
        return list.stream().limit(num).collect(Collectors.toList());
    }

    /**
     * 功能：获取随机长度字符串
     */
    public static String randomStr(int len) {
        return cn.hutool.core.util.RandomUtil.randomString(len);
    }

    /**
     * 功能：获取随机id
     */
    public static String randomID() {
        return IdUtil.simpleUUID();
    }

}
